﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.XPath;

namespace KingOfCSharp.iHunter
{
    /// <summary>
    /// The interface for message viewer control to get messsage data
    /// </summary>
    public interface IMessageViewer
    {
        /// <summary>
        /// Displays the message.
        /// </summary>
        /// <param name="message">The message.</param>
        void DisplayMessage(IMessage message);

        /// <summary>
        /// Gets the contextual commands.
        /// </summary>
        /// <value>The contextual commands. or <c>null</c> if contextual commands is not needed</value>
        /// <remarks>
        /// Using an XML document to describe the contextual commands.
        /// The contextual commands will be displayed when a message associated with this channel provider
        /// (means the messages is created by a channel that created by this provider) is selected and opened.
        /// The style of displaying the command UI elements depends on the GUI.
        /// For example, The Ribbon GUI will display these commands and a contextual ribbon tab in the command bar.
        /// </remarks>
        XPathNavigator ContextualCommands { get; }

        void ExcuteCommand(CommandUIEventArgs uiElement);

        event CommandUIEventHandler UpdateCommandUI;

    }
}
